package com.wsoft.system.service;

import com.github.pagehelper.PageInfo;
import com.wsoft.system.dto.SysDataPermDto;
import com.wsoft.system.entity.SysDataPermEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wsoft.system.query.dataPerm.DataPermInsertQuery;
import com.wsoft.system.query.dataPerm.DataPermUpdateQuery;
import com.wsoft.system.query.perm.SysDataPermReq;

import java.util.List;

/**
 * <p>
 * 数据权限表 服务类
 * </p>
 *
 * @author kyle
 * @since 2024年08月29日 10:34:35
 */
public interface ISysDataPermService extends IService<SysDataPermEntity> {
    /**
     * 新增数据权限
     * @param query
     * @return boolean
     */
    boolean insert(DataPermInsertQuery query);

    /**
     * 修改数据权限
     * @param query
     * @return boolean
     */
    boolean update(DataPermUpdateQuery query);

    /**
     * 删除数据权限
     * @param id
     * * @return boolean
     */
    boolean delete(Long id);

    /**
     * 查看数据权限详情
     * @param id
     * @return SysDataPermEntity
     */
    SysDataPermEntity getDataPerm(Long id);

    /**
     * 分页数据权限列表
     * @param req
     * @return PageInfo
     */
    PageInfo<SysDataPermEntity> pageDataPerm(SysDataPermReq req);

    /**
     * 获取特殊权限（tableName为 null）
     * @return
     */
    List<SysDataPermEntity> getSpecificDataPerm();


}
